package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 记录项目立项的相关信息对象 oa_project_initiation
 *
 * @author ruoyi
 * @date 2025-05-14
 */
public class OaProjectInitiation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Integer id;

    /** 项目所属的行业领域 */
    @Excel(name = "项目所属的行业领域")
    private String industry;

    /** 项目所属的单位名称 */
    @Excel(name = "项目所属的单位名称")
    private String company;

    /** 项目所属的二级单位名称 */
    @Excel(name = "项目所属的二级单位名称")
    private String secondaryCompany;

    /** 项目的具体内容描述 */
    @Excel(name = "项目的具体内容描述")
    private String projectContent;

    /** 项目的报价金额 */
    @Excel(name = "项目的报价金额")
    private BigDecimal quotedPrice;

    /** 项目开始的日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目开始的日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date commencementDate;

    /** 项目结束的日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目结束的日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completionDate;

    /** 甲方负责对接该项目的人员姓名 */
    @Excel(name = "甲方负责对接该项目的人员姓名")
    private String partyAContact;

    /** 负责该项目立项的人员姓名 */
    @Excel(name = "负责该项目立项的人员姓名")
    private String initiationPersonInCharge;

    /** 为项目分配的唯一编号 */
    @Excel(name = "为项目分配的唯一编号")
    private String projectNumber;

    /** 负责人审批（增项）白色 */
    @Excel(name = "负责人审批", readConverterExp = "增=项")
    private String financialApproval;

    /** 立项信息的创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "立项信息的创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creationDate;

    /** 成本率 */
    @Excel(name = "成本率")
    private String reservedField1;

    /**  发送管理抄送 发送行政抄送（0未发送 1已发送） */
    @Excel(name = " 发送管理抄送 发送行政抄送", readConverterExp = "0=未发送,1=已发送")
    private String reservedField2;

    /** 利润率 */
    @Excel(name = "利润率")
    private String profitMargin;

    /** 实际成本 */
    @Excel(name = "实际成本")
    private BigDecimal actualCost;

    /** 预算成本 */
    @Excel(name = "预算成本")
    private BigDecimal budgetCost;

    /** 项目是否完成（0未完成 1已完成） */
    @Excel(name = "项目是否完成", readConverterExp = "0=未完成,1=已完成")
    private Integer complete;

    /** 完结时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完结时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completeDate;

    /** 刘昕审批（粉色） */
    @Excel(name = "刘昕审批", readConverterExp = "粉=色")
    private String managementApprovala;

    /** 李琨审批（粉色） */
    @Excel(name = "李琨审批", readConverterExp = "粉=色")
    private String managementApproval;

    /** 李琨审批（白色） */
    @Excel(name = "李琨审批", readConverterExp = "白=色")
    private String managementApprovals;

    /** 刘昕审批（白色） */
    @Excel(name = "刘昕审批", readConverterExp = "白=色")
    private String managementApprovalas;

    /** 合同金额 */
    @Excel(name = "合同金额")
    private BigDecimal contractAmount;

    /** 开票状态 */
    @Excel(name = "开票状态")
    private String invoiceStatus;

    /** 票是否开启 */
    @Excel(name = "票是否开启")
    private String isInvoiceOpened;

    /** 回款状态 */
    @Excel(name = "回款状态")
    private String receivablesStatus;

    /** 预算金额合计   */
    @Excel(name = "预算金额合计  ")
    private BigDecimal totalBudgetAmount;

    /** 实际金额合计 */
    @Excel(name = "实际金额合计")
    private BigDecimal totalActualAmount;

    /** 付款金额合计 */
    @Excel(name = "付款金额合计")
    private BigDecimal totalPaymentAmount;

    public void setId(Integer id)
    {
        this.id = id;
    }

    public Integer getId()
    {
        return id;
    }

    public void setIndustry(String industry)
    {
        this.industry = industry;
    }

    public String getIndustry()
    {
        return industry;
    }

    public void setCompany(String company)
    {
        this.company = company;
    }

    public String getCompany()
    {
        return company;
    }

    public void setSecondaryCompany(String secondaryCompany)
    {
        this.secondaryCompany = secondaryCompany;
    }

    public String getSecondaryCompany()
    {
        return secondaryCompany;
    }

    public void setProjectContent(String projectContent)
    {
        this.projectContent = projectContent;
    }

    public String getProjectContent()
    {
        return projectContent;
    }

    public void setQuotedPrice(BigDecimal quotedPrice)
    {
        this.quotedPrice = quotedPrice;
    }

    public BigDecimal getQuotedPrice()
    {
        return quotedPrice;
    }

    public void setCommencementDate(Date commencementDate)
    {
        this.commencementDate = commencementDate;
    }

    public Date getCommencementDate()
    {
        return commencementDate;
    }

    public void setCompletionDate(Date completionDate)
    {
        this.completionDate = completionDate;
    }

    public Date getCompletionDate()
    {
        return completionDate;
    }

    public void setPartyAContact(String partyAContact)
    {
        this.partyAContact = partyAContact;
    }

    public String getPartyAContact()
    {
        return partyAContact;
    }

    public void setInitiationPersonInCharge(String initiationPersonInCharge)
    {
        this.initiationPersonInCharge = initiationPersonInCharge;
    }

    public String getInitiationPersonInCharge()
    {
        return initiationPersonInCharge;
    }

    public void setProjectNumber(String projectNumber)
    {
        this.projectNumber = projectNumber;
    }

    public String getProjectNumber()
    {
        return projectNumber;
    }

    public void setFinancialApproval(String financialApproval)
    {
        this.financialApproval = financialApproval;
    }

    public String getFinancialApproval()
    {
        return financialApproval;
    }

    public void setCreationDate(Date creationDate)
    {
        this.creationDate = creationDate;
    }

    public Date getCreationDate()
    {
        return creationDate;
    }

    public void setReservedField1(String reservedField1)
    {
        this.reservedField1 = reservedField1;
    }

    public String getReservedField1()
    {
        return reservedField1;
    }

    public void setReservedField2(String reservedField2)
    {
        this.reservedField2 = reservedField2;
    }

    public String getReservedField2()
    {
        return reservedField2;
    }

    public void setProfitMargin(String profitMargin)
    {
        this.profitMargin = profitMargin;
    }

    public String getProfitMargin()
    {
        return profitMargin;
    }

    public void setActualCost(BigDecimal actualCost)
    {
        this.actualCost = actualCost;
    }

    public BigDecimal getActualCost()
    {
        return actualCost;
    }

    public void setBudgetCost(BigDecimal budgetCost)
    {
        this.budgetCost = budgetCost;
    }

    public BigDecimal getBudgetCost()
    {
        return budgetCost;
    }

    public void setComplete(Integer complete)
    {
        this.complete = complete;
    }

    public Integer getComplete()
    {
        return complete;
    }

    public void setCompleteDate(Date completeDate)
    {
        this.completeDate = completeDate;
    }

    public Date getCompleteDate()
    {
        return completeDate;
    }

    public void setManagementApprovala(String managementApprovala)
    {
        this.managementApprovala = managementApprovala;
    }

    public String getManagementApprovala()
    {
        return managementApprovala;
    }

    public void setManagementApproval(String managementApproval)
    {
        this.managementApproval = managementApproval;
    }

    public String getManagementApproval()
    {
        return managementApproval;
    }

    public void setManagementApprovals(String managementApprovals)
    {
        this.managementApprovals = managementApprovals;
    }

    public String getManagementApprovals()
    {
        return managementApprovals;
    }

    public void setManagementApprovalas(String managementApprovalas)
    {
        this.managementApprovalas = managementApprovalas;
    }

    public String getManagementApprovalas()
    {
        return managementApprovalas;
    }

    public void setContractAmount(BigDecimal contractAmount)
    {
        this.contractAmount = contractAmount;
    }

    public BigDecimal getContractAmount()
    {
        return contractAmount;
    }

    public void setInvoiceStatus(String invoiceStatus)
    {
        this.invoiceStatus = invoiceStatus;
    }

    public String getInvoiceStatus()
    {
        return invoiceStatus;
    }

    public void setIsInvoiceOpened(String isInvoiceOpened)
    {
        this.isInvoiceOpened = isInvoiceOpened;
    }

    public String getIsInvoiceOpened()
    {
        return isInvoiceOpened;
    }

    public void setReceivablesStatus(String receivablesStatus)
    {
        this.receivablesStatus = receivablesStatus;
    }

    public String getReceivablesStatus()
    {
        return receivablesStatus;
    }

    public void setTotalBudgetAmount(BigDecimal totalBudgetAmount)
    {
        this.totalBudgetAmount = totalBudgetAmount;
    }

    public BigDecimal getTotalBudgetAmount()
    {
        return totalBudgetAmount;
    }

    public void setTotalActualAmount(BigDecimal totalActualAmount)
    {
        this.totalActualAmount = totalActualAmount;
    }

    public BigDecimal getTotalActualAmount()
    {
        return totalActualAmount;
    }

    public void setTotalPaymentAmount(BigDecimal totalPaymentAmount)
    {
        this.totalPaymentAmount = totalPaymentAmount;
    }

    public BigDecimal getTotalPaymentAmount()
    {
        return totalPaymentAmount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("industry", getIndustry())
                .append("company", getCompany())
                .append("secondaryCompany", getSecondaryCompany())
                .append("projectContent", getProjectContent())
                .append("quotedPrice", getQuotedPrice())
                .append("commencementDate", getCommencementDate())
                .append("completionDate", getCompletionDate())
                .append("partyAContact", getPartyAContact())
                .append("initiationPersonInCharge", getInitiationPersonInCharge())
                .append("projectNumber", getProjectNumber())
                .append("financialApproval", getFinancialApproval())
                .append("creationDate", getCreationDate())
                .append("reservedField1", getReservedField1())
                .append("reservedField2", getReservedField2())
                .append("profitMargin", getProfitMargin())
                .append("actualCost", getActualCost())
                .append("budgetCost", getBudgetCost())
                .append("complete", getComplete())
                .append("completeDate", getCompleteDate())
                .append("managementApprovala", getManagementApprovala())
                .append("managementApproval", getManagementApproval())
                .append("managementApprovals", getManagementApprovals())
                .append("managementApprovalas", getManagementApprovalas())
                .append("contractAmount", getContractAmount())
                .append("invoiceStatus", getInvoiceStatus())
                .append("isInvoiceOpened", getIsInvoiceOpened())
                .append("receivablesStatus", getReceivablesStatus())
                .append("totalBudgetAmount", getTotalBudgetAmount())
                .append("totalActualAmount", getTotalActualAmount())
                .append("totalPaymentAmount", getTotalPaymentAmount())
                .toString();
    }
}
